package de.fh.dortmund.pk1.aufgabe1.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JRadioButton;

import de.fh.dortmund.pk1.aufgabe1.cluedo.Spieler;
import de.fh.dortmund.pk1.aufgabe1.cluedo.Mensch;

public class HabKarteGUI extends JDialog
{
	
	JRadioButton jrbuttons[];
	JButton jbutOK;
	ButtonGroup bG;
	Spieler sp;
	JDialog gezeigt;
	JLabel gezeigtl;
	JLabel nixAngeklicktl;
	Spieler zeiger;
	Vector<String> zeigeKarte;
	int v=0;
	
	public HabKarteGUI(Vector<String> zeigKarte, Spieler spi, JDialog gez, JLabel gezl, Spieler zeigerUeb) 
	{
		zeigeKarte = zeigKarte;
		jrbuttons = new JRadioButton[zeigKarte.size()];
		bG = new ButtonGroup();
		sp = spi;
		gezeigt = gez;
		gezeigtl = gezl;
		setLayout(null);
		setBounds(50, 50, 300, 300);
		setAlwaysOnTop(true);
		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		this.zeiger = zeigerUeb; 
		
		for(int i=0; i<zeigKarte.size(); i++) {
			jrbuttons[i] = new JRadioButton(zeigKarte.get(i));
			add(jrbuttons[i]);
			bG.add(jrbuttons[i]);
			jrbuttons[i].setBounds(10, 10+i*30, 100, 20);
		}

		
		jbutOK = new JButton("Zeigen");
		jbutOK.setBounds(40, 100, 100, 70);
		add(jbutOK);
		
		
		jbutOK.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e){
				String selec = "";
				nixAngeklicktl = new JLabel("Bitte erst eine Karte auswaehlen!");
				nixAngeklicktl.setBounds(40, 180, 200, 50);
				add(nixAngeklicktl);
				
				if(zeigeKarte.size() >=1 && jrbuttons[0] != null && jrbuttons[0].getSelectedObjects() != null)
					selec = jrbuttons[0].getText().toString();
				else if(zeigeKarte.size() >=2 && jrbuttons[1] != null && jrbuttons[1].getSelectedObjects() != null)
					selec = jrbuttons[1].getText().toString();
				else if(zeigeKarte.size() ==3 && jrbuttons[2] != null && jrbuttons[2].getSelectedObjects() != null)
					selec = jrbuttons[2].getText().toString();
				
				if(selec == "")
				{
					if(v == 0) {
						nixAngeklicktl.setVisible(true);
						v++;
						repaint();
					}
				} else {
					sp.karteGes(selec);
					sp.setZuletztGes(selec);		// Bei verdaechtigenden Spieler setzten, welche karte ihm gezeigt wurde
					setVisible(false);
					Spielbrett.his.append("Spieler " + zeiger.getName() + "zeigt Karte: " + selec + "\n");
					
					if(sp instanceof Mensch) {
						gezeigtl.setText("Spieler " + sp.getName() + "" + selec);		// welche Karte gezeigt wurde auf nuem JDIalog ausgeben.
						gezeigt.setVisible(true);		// JDialog fuer gezeigte Karte
					}	
					dispose();
					Spielbrett.nextRoundButton.setEnabled(true);
				}
			}
		});
		setVisible(true);
	}
}
